VisualHMI - 协议说明
VisualHMI集成DCBUS、XGUS、Modbus(主/从机)和FX2N等协议。用户开发时候,同一路串口只能使用一种协议。用户根据产品,选择对应协议开发。用户不需要关心屏幕端如何接收或发送指令/报文,只需要将变量地址关联到对应的组态控件即可。屏幕底层会将接收的报文解析后,将数据更新到控件中;同时,操作控件时,会将相应的寄存器的值下发到设备中。
1 DCBUS
DCBUS协议:一种组态协议。在工程设置中,DCBUS协议,如下所示:
- 帧头:2byte,默认为0xAA55,用户可自定义
- 站号:1byte,默认为站号0,255为广播地址。一般在RS485总线用于区分那个从站;
- 启用CRC:2byte,默认是启用,若关闭,校验字段默认为0XCCCC;帧头不参与校验;计算方法如下所示:
- 自动上传:当开启后,用户操作控件会自动上传指令给用户主板
- 写命令应答:用户主板给屏幕写寄存器时候,会自动应答写成功
uint16 MB_calc_crc16(uint8 *buffer, uint32n)
{
uint16 crc, i, j, carry_flag, a;
crc = 0xffff;
for(i = 0; i < n; i++)
{
crc = crc^buffer[i];
for(j = 0;j < 8;j++)
{
a = crc;
carry_flag = a&0x0001;
crc = crc >> 1;
if(carry_flag == 1)
crc = crc^0xa001;
}
}
return crc;
}
读、写、应答的帧格式如下所示:
帧头(2byte) | 站号(1byte) | 长度(1byte) | 功能码(1byte) | 地址(2byte) | 数据(n byte) | 校验(2byte) |
---|---|---|---|---|---|---|
0xAA55 | 0x00~0xFF | 功能码+…+校验 | 0xF1/0xF2 | 0x0000~0xFFFF | ……. | 0xCCCC |
1.1 写变量存储器指令指令(0xF1)
以向 0x1000 变量地址里写数值100为例: AA55 00 07 F1 1000 0064 CCCC
AA55 表示:帧头;
00表示:站号;
07表示:数据长度,功能码+…+校验的总字节长度;
F1表示:写寄存器;
1000表示:变量地址(2 byte);
0064表示:数据 100(2byte);
CCCC表示:预留字段,没有开启CRC;
若屏幕的站号为1: AA55 01 07 F1 1000 0064 CCCC
若屏幕的站号为1、开启CRC :AA55 01 07 F1 1000 0064 7289
屏幕开启应答:AA55 00 03 F1 CCCC
若屏幕的站号为1:AA55 01 03 F1 CCCC
若屏幕的站号为1、开启CRC:AA55 01 03 F1 B0B4
1.2 读变量存储器指令指令(0xF2)
以读 1000 变量地址里的数值(假设当前数值为 100)为例:AA55 00 06 F2 1000 01 CCCC
AA55 表示:帧头;
00表示:站号;
06表示:数据长度;
F2表示:读寄存器;
1000表示:变量起始地址(2 byte);
01表示:读取的地址个数,范围为1~255个(1byte);
CCCC表示:预留字段,没有开启CRC;
屏收到主板的指令,返回读应答指令:AA55 00 08 F2 1000 01 0064 CCCC
AA55 表示:帧头;
00表示:站号;
08表示:数据长度;
F2表示:读寄存器;
1000表示:变量起始地址(2 byte);
01表示:寄存器数据的长度,单位1 word;
0064表示:寄存器值,100
CCCC表示:预留字段,没有开启CRC;
若屏幕的站号为1:
主板请求:AA55 01 06 F2 1000 01 CCCC
屏幕返回:AA55 01 08 F2 1000 01 0064 CCCC
若屏幕的站号为1、开启CRC :
主板请求:AA55 01 06 F2 1000 01 7B77
屏幕返回:AA55 01 08 F2 1000 01 0064 8CFD
1.3 屏幕修改变量上传主板(0xF2)
若开启 “自动上传”,用户在屏幕上操作控件,修改寄存器值,可自动发出指令上传给主板。
如,点击屏幕将寄存器LW1000修改为100:AA55 0008 F2 1000 01 0064 CCCC
AA55 表示:帧头;
00表示:站号;
08表示:数据长度;
F2表示:读寄存器;
1000表示:变量起始地址(2 byte);
01表示:寄存器数据的长度,单位1 word;
0064表示:寄存器值,100
CCCC表示:预留字段,没有开启CRC;
2 XGUS
XGUS协议格式如下所示:
帧头(2byte) | 长度(1byte) | 功能码(1byte) | 地址(2byte) | 数据(n byte) | 校验(2byte) |
---|---|---|---|---|---|
0xAA55 | 0x00~0xFF | 0x80/0x81/0x82/0x83 | 0x0000~0xFFFF | ……. |
在工程属性配置,开启XGUS协议,如下所示:
帧头:2byte,默认为0x5AA5, 用户可自定义;
启用CRC:2byte,默认是启用;
自动上传:当开启后,用户操作控件会自动上传指令给用户主板;
写命令应答:用户主板给屏幕写寄存器时候,会自动应答写成功;
模式:兼容两种模式
模式1:切换画面使用0x80: 5AA5 03 80 03 XX, XXXX表示画面ID
模式2:切换画面使用0x82: 5AA5 07 82 0084 5A01 XXXX , XXXX表示画面ID
3 Modbus RTU
屏幕支持标准的Modbus-RTU协议,可以设置为主机或从机
3.1 主机模式-ModbusMaster
当屏幕设置为主机时候,配置如下所示:
- 最多读取数:单条指令读取最多字节数;
- 读取间隔数:地址间隔小于此值,可以合并读取;
- 写重试次数:写入失败时候,最大重试次数;
- 超时时间:主机等待从机应答时间,单位毫秒ms;
- 间隔时间:主机接收到从机应答后,延时一段时间后,在发送下一条请求的时间;
写寄存器命令:可设置为自动和0x10;
自动:默认写单个寄存器用0x06指令,写多个寄存器用0x10指令;
0x10:所有写操作均匀0x10写;
离线优化读取:勾选后,离线的从机,不在发送指令请求;
与PLC同步画面:
画面写入地址:HMI的画面变化时,可写到指定的PLC地址;
画面取自地址:PLC地址的值变化时,切换到对应画面(自动为0xFFFF);
从站数目:默认为1个。多个从站,常用于RS485总线。界面配置默认最大10个,若要支持更多从站,可以在LUA脚本设置。
预设字节序:
- 大端模式:默认是大端
- 重新指定:可针对短整型、长整形、单精度、超长整形、双精度浮点数指定字节序
支持功能码:0x01、0x02、0x03、0x04、0x05、0x06、0x0F、0x10
3.2 从机模式-ModbusSlave
当屏幕设置为从机时候,配置如下所示:
从机站号:从机的站号ID
字符间隔:单位ms,超过该时间,认为断帧
延时应答:接收到主机请求,延时一段时间后,在应答主机;
与PLC同步画面
画面写入地址:HMI的画面变化时,可写到指定的PLC地址
画面取自地址:PLC地址的值变化时,切换到对于画面(自动为0xFFFF)
支持功能码:0x01、0x02、0x03、0x04、0x05、0x06、0x0F、0x10
4 三菱-FX2N
4.1 协议说明
屏幕支持标准的FX2N协议,配置下所示:
最多读取数:单条指令读取最多字节数;
读取间隔数:地址间隔小于次值,可以合并读取;
写重试次数:写入失败时候,最大重试次数;
超时时间:单位毫秒ms,主机等待从机应答时间;
间隔时间:单位毫秒ms,主机接收到从机应答后,延时一段时间后,在发送下一条请求;
模式:可支持标准模式和扩展模式;
- 标准:以访问D0寄存器为例:指令16进制显示(02 30 31 30 30 30 30 32 03 35 36) ,assic 显示(.0100002.56)。特点指令短、寄存器地址范围小
扩展:以访问D0寄存器为例:指令16进制显示(02 45 30 30 34 30 30 30 30 32 03 43 45) ,assic 显示(.E00400002.CE)。特点指令长、寄存器地址范围大
与PLC同步画面:
画面写入地址:HMI的画面变化时,可写到指定的PLC地址;
画面取自地址:PLC地址的值变化时,切换到对应画面(自动为0xFFFF);
预设字节序:
大端模式:默认是大端
重新指定:可针对短整型、长整形、单精度、超长整形、双精度浮点数指定字节序
5 三菱-FX3U
5.1 协议说明
屏幕支持标准的FX3U协议,配置如下所示:
最多读取数:单条指令读取最多字节数;
读取间隔数:地址间隔小于次值,可以合并读取;
写重试次数:写入失败时候,最大重试次数;
超时时间:主机等待从机应答时间,单位毫秒ms;
间隔时间:主机接收到从机应答后,延时一段时间后,在发送下一条请求;
模式:可支持标准模式和扩展模式;
- 标准:以访问D0寄存器为例:指令16进制显示(02 30 31 30 30 30 30 32 03 35 36) ,assic 显示(.0100002.56)。特点指令短、寄存器地址范围小
- 扩展:以访问D0寄存器为例:指令16进制显示(02 45 30 30 34 30 30 30 30 32 03 43 45) ,assic 显示(.E00400002.CE)。特点指令长、寄存器地址范围大
与PLC同步画面:
画面写入地址:HMI的画面变化时,可写到指定的PLC地址;
画面取自地址:PLC地址的值变化时,切换到对应画面(自动为0xFFFF);
预设字节序:
大端模式:默认是大端
重新指定:可针对短整型、长整形、单精度、超长整形、双精度浮点数指定字节序
6 台达PLC - DELTA(DVP)
6.1 协议说明
支持标准的台达协议,通讯协议ASSIC模式.
起始 符 | 通讯地址 | 指令码 | 数据内容 | 校验 | 结束符 | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
STX | ADR1 | ADR0 | CMD1 | CMD0 | DATA0 | ... | DATAn | LCR1 | LCR0 | CR | LF |
协议说明
最多读取数:单条指令读取最多字节数;
读取间隔数:地址间隔小于次值,可以合并读取;
写重试次数:写入失败时候,最大重试次数;
超时时间:主机等待从机应答时间,单位毫秒ms;
间隔时间:主机接收到从机应答后,延时一段时间后,在发送下一条请求;
写寄存器命令:自动或0x10
离线读取优化:防止从站不在线时,频发读取造成总线堵塞;
与PLC同步画面:
画面写入地址:HMI的画面变化时,可写到指定的PLC地址;
画面取自地址:PLC地址的值变化时,切换到对应画面(自动为0xFFFF);
从站数目:支持一主多从
预设字节序:
大端模式:默认是大端
重新指定:可针对短整型、长整形、单精度、超长整形、双精度浮点数指定字节序
6.2 寄存器类型
支持的寄存器类型如下所示
7 信捷PLC - XC系列
7.1 协议说明
支持标准的信捷PLC - XC系列,协议设置如下所示
最多读取数:单条指令读取最多字节数;
读取间隔数:地址间隔小于次值,可以合并读取;
写重试次数:写入失败时候,最大重试次数;
超时时间:主机等待从机应答时间,单位毫秒ms;
间隔时间:主机接收到从机应答后,延时一段时间后,在发送下一条请求;
写寄存器命令:自动或0x10
离线读取优化:防止从站不在线时,频发读取造成总线堵塞;
与PLC同步画面:
画面写入地址:HMI的画面变化时,可写到指定的PLC地址;
画面取自地址:PLC地址的值变化时,切换到对应画面(自动为0xFFFF);
从站数目:支持一主多从
预设字节序:
大端模式:默认是大端
重新指定:可针对短整型、长整形、单精度、超长整形、双精度浮点数指定字节序
7.2 寄存器类型
支持的寄存器类型如图 下所示:
8 信捷PLC - XD系列
8.1 协议说明
支持标准的信捷PLC - XD系列,协议设置如下所示:
最多读取数:单条指令读取最多字节数;
读取间隔数:地址间隔小于次值,可以合并读取;
写重试次数:写入失败时候,最大重试次数;
超时时间:主机等待从机应答时间,单位毫秒ms;
间隔时间:主机接收到从机应答后,延时一段时间后,在发送下一条请求;
写寄存器命令:自动或0x10
离线读取优化:防止从站不在线时,频发读取造成总线堵塞;
与PLC同步画面:
画面写入地址:HMI的画面变化时,可写到指定的PLC地址;
画面取自地址:PLC地址的值变化时,切换到对应画面(自动为0xFFFF);
从站数目:支持一主多从
预设字节序:
大端模式:默认是大端
重新指定:可针对短整型、长整形、单精度、超长整形、双精度浮点数指定字节序
8.2 寄存器类型
支持的寄存器类型如下所示:
9 永宏PLC - FATEK(FB)
9.1 协议说明
支持标准的永宏PLC - FATEK(FB)系列,协议设置如下所示
最多读取数:单条指令读取最多字节数;
读取间隔数:地址间隔小于次值,可以合并读取;
写重试次数:写入失败时候,最大重试次数;
超时时间:主机等待从机应答时间,单位毫秒ms;
间隔时间:主机接收到从机应答后,延时一段时间后,在发送下一条请求;
写寄存器命令:自动或0x10
离线读取优化:防止从站不在线时,频发读取造成总线堵塞;
与PLC同步画面:
画面写入地址:HMI的画面变化时,可写到指定的PLC地址;
画面取自地址:PLC地址的值变化时,切换到对应画面(自动为0xFFFF);
从站数目:支持一主多从
预设字节序:
- 大端模式:默认是大端
- 重新指定:可针对短整型、长整形、单精度、超长整形、双精度浮点数指定字节序
9.2 寄存器类型
支持的寄存器类型如图下所示:
10 海为HAIWELL PLC - N/S系列
10.1 协议说明
支持标准的海为HAIWELL(N/S)协议,协议说明如下所示:
最多读取数:单条指令读取最多字节数;
读取间隔数:地址间隔小于次值,可以合并读取;
写重试次数:写入失败时候,最大重试次数;
超时时间:主机等待从机应答时间,单位毫秒ms;
间隔时间:主机接收到从机应答后,延时一段时间后,在发送下一条请求;
写寄存器命令:自动或0x10
离线读取优化:防止从站不在线时,频发读取造成总线堵塞;
与PLC同步画面:
画面写入地址:HMI的画面变化时,可写到指定的PLC地址;
画面取自地址:PLC地址的值变化时,切换到对应画面(自动为0xFFFF);
从站数目:支持一主多从
预设字节序:
- 大端模式:默认是大端
- 重新指定:可针对短整型、长整形、单精度、超长整形、双精度浮点数指定字节序
10.2 寄存器类型
支持的寄存器类型如下所示
11 显控-SAMKOON
11.1 协议说明
支持标准的显控SAMKOO协议,协议说明如下所示:
最多读取数:单条指令读取最多字节数;
读取间隔数:地址间隔小于次值,可以合并读取;
写重试次数:写入失败时候,最大重试次数;
超时时间:主机等待从机应答时间,单位毫秒ms;
间隔时间:主机接收到从机应答后,延时一段时间后,在发送下一条请求;
写寄存器命令:自动或0x10
离线读取优化:防止从站不在线时,频发读取造成总线堵塞;
与PLC同步画面:
画面写入地址:HMI的画面变化时,可写到指定的PLC地址;
画面取自地址:PLC地址的值变化时,切换到对应画面(自动为0xFFFF);
从站数目:支持一主多从
预设字节序:
大端模式:默认是大端
重新指定:可针对短整型、长整形、单精度、超长整形、双精度浮点数指定字节序
11.2 寄存器类型
支持的寄存器,如图下所示
12 艾默生 - EMERSON
12.1 协议说明
支持标准的艾默生PLC协议,协议设置如下所示
最多读取数:单条指令读取最多字节数;
读取间隔数:地址间隔小于次值,可以合并读取;
写重试次数:写入失败时候,最大重试次数;
超时时间:主机等待从机应答时间,单位毫秒ms;
间隔时间:主机接收到从机应答后,延时一段时间后,在发送下一条请求;
写寄存器命令:自动或0x10
离线读取优化:防止从站不在线时,频发读取造成总线堵塞;
与PLC同步画面:
画面写入地址:HMI的画面变化时,可写到指定的PLC地址;
画面取自地址:PLC地址的值变化时,切换到对应画面(自动为0xFFFF);
从站数目:支持一主多从
预设字节序:
- 大端模式:默认是大端
- 重新指定:可针对短整型、长整形、单精度、超长整形、双精度浮点数指定字节序
12.2 寄存器类型
支持的寄存器类型如下所示:
13 艾默生 - EMERSON
13.1 协议说明
支持标准的艾默生,协议设置如下所示
最多读取数:单条指令读取最多字节数;
读取间隔数:地址间隔小于次值,可以合并读取;
写重试次数:写入失败时候,最大重试次数;
超时时间:主机等待从机应答时间,单位毫秒ms;
间隔时间:主机接收到从机应答后,延时一段时间后,在发送下一条请求;
写寄存器命令:自动或0x10
离线读取优化:防止从站不在线时,频发读取造成总线堵塞;
与PLC同步画面:
画面写入地址:HMI的画面变化时,可写到指定的PLC地址;
画面取自地址:PLC地址的值变化时,切换到对应画面(自动为0xFFFF);
从站数目:支持一主多从
预设字节序:
大端模式:默认是大端
重新指定:可针对短整型、长整形、单精度、超长整形、双精度浮点数指定字节序
13.2 寄存器类型
支持的寄存器类型如下所示:
14 丰炜PLC - M/VB/VH系列
14.1 协议说明
支持标准的丰炜PLC-M/VB/VH系列,协议设置如下所示
最多读取数:单条指令读取最多字节数;
读取间隔数:地址间隔小于次值,可以合并读取;
写重试次数:写入失败时候,最大重试次数;
超时时间:主机等待从机应答时间,单位毫秒ms;
间隔时间:主机接收到从机应答后,延时一段时间后,在发送下一条请求;
写寄存器命令:自动或0x10
离线读取优化:防止从站不在线时,频发读取造成总线堵塞;
与PLC同步画面:
画面写入地址:HMI的画面变化时,可写到指定的PLC地址;
画面取自地址:PLC地址的值变化时,切换到对应画面(自动为0xFFFF);
从站数目:支持一主多从
预设字节序:
大端模式:默认是大端
重新指定:可针对短整型、长整形、单精度、超长整形、双精度浮点数指定字节序
14.2 寄存器类型
支持的寄存器类型如下所示:
15 松下PLC - FP 系列
15.1 协议说明
支持标准的松下PLC - FP 系列,协议设置如下所示
最多读取数:单条指令读取最多字节数;
读取间隔数:地址间隔小于次值,可以合并读取;
写重试次数:写入失败时候,最大重试次数;
超时时间:主机等待从机应答时间,单位毫秒ms;
间隔时间:主机接收到从机应答后,延时一段时间后,在发送下一条请求;
写寄存器命令:自动或0x10
离线读取优化:防止从站不在线时,频发读取造成总线堵塞;
与PLC同步画面:
画面写入地址:HMI的画面变化时,可写到指定的PLC地址;
画面取自地址:PLC地址的值变化时,切换到对应画面(自动为0xFFFF);
从站数目:支持一主多从
预设字节序:
大端模式:默认是大端
重新指定:可针对短整型、长整形、单精度、超长整形、双精度浮点数指定字节序
15.2 寄存器类型
支持的寄存器类型如下所示: